// 打开项目
const openCmd = new OpenProjectCommand('project-2023')
CommandExecutor.execute(openCmd)

// 创建清单项（使用工厂模式）
const createItemCmd = CommandFactory.create(
  ServiceType.BQItemService,
  'createItem',
  'section-1',
  'New Item',
)
createItemCmd.execute()

// 带中间件的执行
const executor = new AdvancedCommandExecutor()
executor.use(new AuthMiddleware())
executor.use(new LoggingMiddleware())
executor.execute(createItemCmd)

/*

维度	          显式命令类	                工厂方法
​代码量​	        每个命令需单独定义类	       零类定义，即用即建
​可读性​	        ⭐⭐⭐⭐ 类名即文档	      ⭐⭐ 需查看参数才能理解意图
​维护成本​	      类文件多但分散风险	         集中维护但需处理参数变动
​类型安全性​	    构造函数参数校验	           工厂泛型约束方法存在性
​执行灵活性​	    可重写执行过程	             固定执行逻辑
​适用命令复杂度​	高/中复杂度逻辑	             低复杂度操作
​动态性​	       静态定义	                    支持运行时动态构造
​调试便利性​	   有明确类名，堆栈清晰	         匿名命令，调试稍困难
*/
